package pe.edu.sistemas.sisdiho.controller;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.sql.Time;
import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;

import org.primefaces.component.tabview.TabView;
import org.primefaces.event.SelectEvent;
import org.primefaces.event.TabChangeEvent;
import org.primefaces.model.DefaultScheduleEvent;
import org.primefaces.model.DefaultScheduleModel;
import org.primefaces.model.ScheduleEvent;
import org.primefaces.model.ScheduleModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Controller;

import pe.edu.sistemas.sisdiho.entities.Aula;
import pe.edu.sistemas.sisdiho.entities.Periodo;
import pe.edu.sistemas.sisdiho.entities.Peticion;
import pe.edu.sistemas.sisdiho.entities.RegistroHorario;
import pe.edu.sistemas.sisdiho.entities.User;
import pe.edu.sistemas.sisdiho.repositories.PeriodoRepository;
import pe.edu.sistemas.sisdiho.services.AsignacionAulasService;
import pe.edu.sistemas.sisdiho.services.PeticionService;
import pe.edu.sistemas.sisdiho.services.ScheduleLaboService;
import pe.edu.sistemas.sisdiho.services.UserScheduleService;
import pe.edu.sistemas.sisdiho.util.Fecha;

/**
 * @author Francisco M
 *
 */
@Controller
@Scope("session")
public class CommonLaboScheduleController {
	@Autowired
	UserScheduleService userService;
	@Autowired
	PeticionService peticionService;
	@Autowired
	ScheduleLaboService asignarAulas;
	@Autowired
	PeriodoRepository periodoRepository;
	@Autowired
	AsignacionAulasService asignarListaLaboratorios;
	//AsignacionAulasService asignarLaboratorios;
	private String ceupsTabClass="ceupsTabClass";
	private String upgTabClass="upgTabClass";
	private int idPestañaActiva;
	private boolean existeCruce=false;
	private Peticion peticionDoc=new Peticion();
	private List<Peticion> listaPeticiones=new ArrayList<Peticion>();
	private List<Peticion> EventosAprobadosLabo=new ArrayList<Peticion>();
	private Date inicioCalendar;
	private Peticion peticionSelected;
	
	private List<RegistroHorario> listaLunes=new ArrayList<RegistroHorario>();
	private List<RegistroHorario> listaMartes=new ArrayList<RegistroHorario>();
	private List<RegistroHorario> listaMiercoles=new ArrayList<RegistroHorario>();
	private List<RegistroHorario> listaJueves=new ArrayList<RegistroHorario>();
	private List<RegistroHorario> listaViernes=new ArrayList<RegistroHorario>();
	private List<RegistroHorario> listaSabado=new ArrayList<RegistroHorario>();
	private List<RegistroHorario> listaDomingo=new ArrayList<RegistroHorario>();
	private List<Aula> listaLaboratorios = new ArrayList<Aula>();
	private List<RegistroHorario> horarioCruce=new ArrayList<RegistroHorario>();
	
	
	private ScheduleModel eventModel1;
	private ScheduleEvent eventSelected = new DefaultScheduleEvent();
	private DefaultScheduleEvent eventNuevo;
	private ScheduleModel eventModel2;
	private ScheduleModel eventModel3;
	private ScheduleModel eventModel4;
	private ScheduleModel eventModel5;
	private ScheduleModel eventModel6;
	private ScheduleModel eventModel7;
	private ScheduleModel eventModel8;
	private ScheduleModel eventModel9;
	private ScheduleModel eventModelA;
	private ScheduleModel eventModelB;
	private Periodo periodoActual = new Periodo();
	private Date fechaInicioP;
	private Date fechaFinP;
	private Date fechaAux;
	private User usuario;
	private List<Peticion> misPeticiones=new ArrayList<Peticion>();
	private RegistroHorario detalleClaseSelected;
	private Peticion detalleEventoSelected;	
	private boolean detalleEvento;
	private boolean detalleClase;
	
	private boolean existeCrucePet=false;
	private boolean existeCruceClases=false;
	private boolean existeCruceEventos=false;
	private List<RegistroHorario> listaCruceHorarios=new ArrayList<RegistroHorario>();
	private List<Peticion> posibleCrucePet=new ArrayList<Peticion>();
	private List<Peticion> posibleCrucePetAprob=new ArrayList<Peticion>();
	private List<String> error = new ArrayList<String>();
	private List<Peticion> CrucePet=new ArrayList<Peticion>();
	private boolean soyUsuario;
	private int esUsuario;
	@PostConstruct
	public void init(){
		
		llenarLaboratorios();
		eventModel1 = new DefaultScheduleModel();
		eventModel2 = new DefaultScheduleModel();
		eventModel3 = new DefaultScheduleModel();
		eventModel4 = new DefaultScheduleModel();
		eventModel5 = new DefaultScheduleModel();
		eventModel6 = new DefaultScheduleModel();
		eventModel7 = new DefaultScheduleModel();
		eventModel8 = new DefaultScheduleModel();
		eventModel9 = new DefaultScheduleModel();
		eventModelA = new DefaultScheduleModel();
		eventModelB = new DefaultScheduleModel();
		llenarScheduleLabos();
		llenarScheduleEventos();
	}
	
	
	public String getCeupsTabClass() {
		return ceupsTabClass;
	}


	public void setCeupsTabClass(String ceupsTabClass) {
		this.ceupsTabClass = ceupsTabClass;
	}


	public String getUpgTabClass() {
		return upgTabClass;
	}


	public void setUpgTabClass(String upgTabClass) {
		this.upgTabClass = upgTabClass;
	}


	public boolean isSoyUsuario() {
		return soyUsuario;
	}


	public void setSoyUsuario(boolean soyUsuario) {
		this.soyUsuario = soyUsuario;
	}


	public int getEsUsuario() {
		return esUsuario;
	}


	public void setEsUsuario(int esUsuario) {
		this.esUsuario = esUsuario;
	}


	public List<Peticion> getPosibleCrucePetAprob() {
		return posibleCrucePetAprob;
	}


	public void setPosibleCrucePetAprob(List<Peticion> posibleCrucePetAprob) {
		this.posibleCrucePetAprob = posibleCrucePetAprob;
	}


	public List<RegistroHorario> getListaCruceHorarios() {
		return listaCruceHorarios;
	}


	public void setListaCruceHorarios(List<RegistroHorario> listaCruceHorarios) {
		this.listaCruceHorarios = listaCruceHorarios;
	}


	public List<Peticion> getCrucePet() {
		return CrucePet;
	}


	public void setCrucePet(List<Peticion> crucePet) {
		CrucePet = crucePet;
	}


	public List<String> getError() {
		return error;
	}


	public void setError(List<String> error) {
		this.error = error;
	}


	public List<Peticion> getPosibleCrucePet() {
		return posibleCrucePet;
	}


	public void setPosibleCrucePet(List<Peticion> posibleCrucePet) {
		this.posibleCrucePet = posibleCrucePet;
	}


	public boolean isExisteCrucePet() {
		return existeCrucePet;
	}


	public void setExisteCrucePet(boolean existeCrucePet) {
		this.existeCrucePet = existeCrucePet;
	}


	public boolean isExisteCruceClases() {
		return existeCruceClases;
	}


	public void setExisteCruceClases(boolean existeCruceClases) {
		this.existeCruceClases = existeCruceClases;
	}


	public boolean isExisteCruceEventos() {
		return existeCruceEventos;
	}


	public void setExisteCruceEventos(boolean existeCruceEventos) {
		this.existeCruceEventos = existeCruceEventos;
	}


	public User getUsuario() {
		return usuario;
	}


	public void setUsuario(User usuario) {
		this.usuario = usuario;
	}


	public boolean isDetalleEvento() {
		return detalleEvento;
	}


	public void setDetalleEvento(boolean detalleEvento) {
		this.detalleEvento = detalleEvento;
	}


	public boolean isDetalleClase() {
		return detalleClase;
	}


	public void setDetalleClase(boolean detalleClase) {
		this.detalleClase = detalleClase;
	}


	public RegistroHorario getDetalleClaseSelected() {
		return detalleClaseSelected;
	}


	public void setDetalleClaseSelected(RegistroHorario detalleClaseSelected) {
		this.detalleClaseSelected = detalleClaseSelected;
	}


	public Peticion getDetalleEventoSelected() {
		return detalleEventoSelected;
	}


	public void setDetalleEventoSelected(Peticion detalleEventoSelected) {
		this.detalleEventoSelected = detalleEventoSelected;
	}


	public ScheduleEvent getEventSelected() {
		return eventSelected;
	}


	public void setEventSelected(ScheduleEvent eventSelected) {
		this.eventSelected = eventSelected;
	}


	public DefaultScheduleEvent getEventNuevo() {
		return eventNuevo;
	}


	public void setEventNuevo(DefaultScheduleEvent eventNuevo) {
		this.eventNuevo = eventNuevo;
	}


	public ScheduleModel getEventModel2() {
		return eventModel2;
	}


	public void setEventModel2(ScheduleModel eventModel2) {
		this.eventModel2 = eventModel2;
	}


	public ScheduleModel getEventModel3() {
		return eventModel3;
	}


	public void setEventModel3(ScheduleModel eventModel3) {
		this.eventModel3 = eventModel3;
	}


	public ScheduleModel getEventModel4() {
		return eventModel4;
	}


	public void setEventModel4(ScheduleModel eventModel4) {
		this.eventModel4 = eventModel4;
	}


	public ScheduleModel getEventModel5() {
		return eventModel5;
	}


	public void setEventModel5(ScheduleModel eventModel5) {
		this.eventModel5 = eventModel5;
	}


	public ScheduleModel getEventModel6() {
		return eventModel6;
	}


	public void setEventModel6(ScheduleModel eventModel6) {
		this.eventModel6 = eventModel6;
	}


	public ScheduleModel getEventModel7() {
		return eventModel7;
	}


	public void setEventModel7(ScheduleModel eventModel7) {
		this.eventModel7 = eventModel7;
	}


	public ScheduleModel getEventModel8() {
		return eventModel8;
	}


	public void setEventModel8(ScheduleModel eventModel8) {
		this.eventModel8 = eventModel8;
	}


	public ScheduleModel getEventModelA() {
		return eventModelA;
	}


	public void setEventModelA(ScheduleModel eventModelA) {
		this.eventModelA = eventModelA;
	}


	public ScheduleModel getEventModelB() {
		return eventModelB;
	}


	public void setEventModelB(ScheduleModel eventModelB) {
		this.eventModelB = eventModelB;
	}


	public List<Peticion> getMisPeticiones() {
		return misPeticiones;
	}


	public void setMisPeticiones(List<Peticion> misPeticiones) {
		this.misPeticiones = misPeticiones;
	}


	public Peticion getPeticionSelected() {
		return peticionSelected;
	}


	public void setPeticionSelected(Peticion peticionSelected) {
		this.peticionSelected = peticionSelected;
	}


	public Date getInicioCalendar() {
		return inicioCalendar;
	}


	public void setInicioCalendar(Date inicioCalendar) {
		this.inicioCalendar = inicioCalendar;
	}


	public Peticion getPeticionDoc() {
		return peticionDoc;
	}


	public void setPeticionDoc(Peticion peticionDoc) {
		this.peticionDoc = peticionDoc;
	}


	public List<Peticion> getListaPeticiones() {
		return listaPeticiones;
	}


	public void setListaPeticiones(List<Peticion> listaPeticiones) {
		this.listaPeticiones = listaPeticiones;
	}
	public int getIdPestañaActiva() {
		return idPestañaActiva;
	}


	public void setIdPestañaActiva(int idPestañaActiva) {
		this.idPestañaActiva = idPestañaActiva;
	}
	public List<Aula> getListaLaboratorios()
	{
		return listaLaboratorios;
	}
	public void setListaLaboratorios(List<Aula> listaLaboratorios)
	{
		this.listaLaboratorios = listaLaboratorios;
	}
	
	public List<RegistroHorario> getHorarioCruce() {
		return horarioCruce;
	}


	public void setHorarioCruce(List<RegistroHorario> horarioCruce) {
		this.horarioCruce = horarioCruce;
	}
	


	public boolean isExisteCruce() {
		return existeCruce;
	}


	public void setExisteCruce(boolean existeCruce) {
		this.existeCruce = existeCruce;
	}
	

	

	public ScheduleModel getEventModel1() {
		return eventModel1;
	}


	public void setEventModel1(ScheduleModel eventModel1) {
		this.eventModel1 = eventModel1;
	}


	public ScheduleModel getEventModel9() {
		return eventModel9;
	}


	public void setEventModel9(ScheduleModel eventModel9) {
		this.eventModel9 = eventModel9;
	}
	
	/*public void actualizarAula(int idAulaSelected , RegistroHorario horarioSelected){
		asignarAulas.actualizarAulas(idAulaSelected, horarioSelected);
	}
	*/
    
	public List<RegistroHorario> getListaLunes() {
		return listaLunes;
	}


	public void setListaLunes(List<RegistroHorario> listaLunes) {
		this.listaLunes = listaLunes;
	}


	public List<Peticion> getEventosAprobadosLabo() {
		return EventosAprobadosLabo;
	}


	public void setEventosAprobadosLabo(List<Peticion> eventosAprobadosLabo) {
		EventosAprobadosLabo = eventosAprobadosLabo;
	}

	public List<RegistroHorario> getListaMartes() {
		return listaMartes;
	}


	public void setListaMartes(List<RegistroHorario> listaMartes) {
		this.listaMartes = listaMartes;
	}


	public List<RegistroHorario> getListaMiercoles() {
		return listaMiercoles;
	}


	public void setListaMiercoles(List<RegistroHorario> listaMiercoles) {
		this.listaMiercoles = listaMiercoles;
	}


	public List<RegistroHorario> getListaJueves() {
		return listaJueves;
	}


	public void setListaJueves(List<RegistroHorario> listaJueves) {
		this.listaJueves = listaJueves;
	}


	public List<RegistroHorario> getListaViernes() {
		return listaViernes;
	}


	public void setListaViernes(List<RegistroHorario> listaViernes) {
		this.listaViernes = listaViernes;
	}


	public List<RegistroHorario> getListaSabado() {
		return listaSabado;
	}


	public void setListaSabado(List<RegistroHorario> listaSabado) {
		this.listaSabado = listaSabado;
	}


	public List<RegistroHorario> getListaDomingo() {
		return listaDomingo;
	}


	public void setListaDomingo(List<RegistroHorario> listaDomingo) {
		this.listaDomingo = listaDomingo;
	}


	public Periodo getPeriodoActual() {
		return periodoActual;
	}


	public void setPeriodoActual(Periodo periodoActual) {
		this.periodoActual = periodoActual;
	}


	public Date getFechaInicioP() {
		return fechaInicioP;
	}


	public void setFechaInicioP(Date fechaInicioP) {
		this.fechaInicioP = fechaInicioP;
	}


	public Date getFechaFinP() {
		return fechaFinP;
	}


	public void setFechaFinP(Date fechaFinP) {
		this.fechaFinP = fechaFinP;
	}


	public Date getFechaAux() {
		return fechaAux;
	}


	public void setFechaAux(Date fechaAux) {
		this.fechaAux = fechaAux;
	}


	public void limpiar(){
    	listaPeticiones.clear();
    	eventModel1.clear();
    	eventModel2.clear();
    	eventModel3.clear();
    	eventModel4.clear();
    	eventModel5.clear();
    	eventModel6.clear();
    	eventModel7.clear();
    	eventModel8.clear();
    	eventModel9.clear();
    	eventModelA.clear();
    	eventModelB.clear();
    	misPeticiones.clear();
    	
    }
     
    public void onEventSelect(SelectEvent selectEvent) {
    	eventSelected = (ScheduleEvent) selectEvent.getObject();
    			if(eventSelected.getData() instanceof RegistroHorario){
    				detalleClaseSelected=(RegistroHorario)eventSelected.getData();
    				setDetalleClase(true);
    				setDetalleEvento(false);
    			}else{
    				detalleEventoSelected=(Peticion)eventSelected.getData();
    				setDetalleClase(false);
    				setDetalleEvento(true);
    				System.out.println(detalleEventoSelected.getNombrePersona()+" "+detalleEventoSelected.getNombreUsuario());

    			}
    	
    }
    public void onTabChange(TabChangeEvent event) 
    {   
        TabView tabView = (TabView) event.getComponent();
        idPestañaActiva = tabView.getChildren().indexOf(event.getTab());
    }
	

	public Date horarioAFecha(String s){
		Date date=null;
		SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
	 
		try {
	 
			date = formatter.parse(s);
	 
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return date;
	}
	public Date stringAFecha(String s){
		Date date=null;
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
	 
		try {
	 
			date = formatter.parse(s);
	 
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return date;
	}
	public void llenarLunes(Date fechaAux){
		int dia,mes,año;
		String Fecha,StringAux1,StringAux2;
		dia=fechaAux.getDate();
		mes=fechaAux.getMonth();
		mes++;
		año=fechaAux.getYear();
		año=año+1900;
		if(mes<=9){
			Fecha=""+dia+"-"+"0"+mes+"-"+año+"";
		}else{
			Fecha=""+dia+"-"+mes+"-"+año+"";
		}
		if(dia<=9){
			Fecha="0"+Fecha;
		}
		List<RegistroHorario> SLaux=listaLunes;
		Iterator<RegistroHorario> iterador=SLaux.iterator();
		while(iterador.hasNext()){
			RegistroHorario rh=(RegistroHorario)iterador.next();
			StringAux1=Fecha;
			StringAux2=Fecha;
			StringAux1=StringAux1+" "+rh.gethInicio().getHours()+":";
			if(rh.gethInicio().getMinutes()<=9){
				StringAux1=StringAux1+"0"+rh.gethInicio().getMinutes()+":"+"00";
			}else{
				StringAux1=StringAux1+rh.gethInicio().getMinutes()+":"+"00";
			}
			StringAux2=StringAux2+" "+rh.gethFin().getHours()+":";
			if(rh.gethFin().getMinutes()<=9){
				StringAux2=StringAux2+"0"+rh.gethFin().getMinutes()+":"+"00";
			}else{
				StringAux2=StringAux2+rh.gethFin().getMinutes()+":"+"00";
			}
			switch(rh.getIdAula()){
			case 22:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel1.addEvent(eventNuevo);break;
			case 23:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel2.addEvent(eventNuevo);break;
			case 24:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel3.addEvent(eventNuevo);break;
			case 25:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel4.addEvent(eventNuevo);break;
			case 26:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel5.addEvent(eventNuevo);break;
			case 27:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel6.addEvent(eventNuevo);break;
			case 28:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel7.addEvent(eventNuevo);break;
			case 29:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel8.addEvent(eventNuevo);break;
			case 30:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel9.addEvent(eventNuevo);break;
			case 31:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModelA.addEvent(eventNuevo);break;
			case 32:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModelB.addEvent(eventNuevo);break;
			case 0:break;
			}
		}
		
	}
	public void llenarMartes(Date fechaAux){
		int dia,mes,año;
		String Fecha,StringAux1,StringAux2;
		dia=fechaAux.getDate();
		mes=fechaAux.getMonth();
		mes++;
		año=fechaAux.getYear();
		año=año+1900;
		if(mes<=9){
			Fecha=""+dia+"-"+"0"+mes+"-"+año+"";
		}else{
			Fecha=""+dia+"-"+mes+"-"+año+"";
		}
		if(dia<=9){
			Fecha="0"+Fecha;
		}
		List<RegistroHorario> SLaux=listaMartes;
		Iterator<RegistroHorario> iterador=SLaux.iterator();
		while(iterador.hasNext()){
			RegistroHorario rh=(RegistroHorario)iterador.next();
			StringAux1=Fecha;
			StringAux2=Fecha;
			StringAux1=StringAux1+" "+rh.gethInicio().getHours()+":";
			if(rh.gethInicio().getMinutes()<=9){
				StringAux1=StringAux1+"0"+rh.gethInicio().getMinutes()+":"+"00";
			}else{
				StringAux1=StringAux1+rh.gethInicio().getMinutes()+":"+"00";
			}
			StringAux2=StringAux2+" "+rh.gethFin().getHours()+":";
			if(rh.gethFin().getMinutes()<=9){
				StringAux2=StringAux2+"0"+rh.gethFin().getMinutes()+":"+"00";
			}else{
				StringAux2=StringAux2+rh.gethFin().getMinutes()+":"+"00";
			}
			switch(rh.getIdAula()){
			case 22:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel1.addEvent(eventNuevo);break;
			case 23:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel2.addEvent(eventNuevo);break;
			case 24:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel3.addEvent(eventNuevo);break;
			case 25:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel4.addEvent(eventNuevo);break;
			case 26:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel5.addEvent(eventNuevo);break;
			case 27:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel6.addEvent(eventNuevo);break;
			case 28:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel7.addEvent(eventNuevo);break;
			case 29:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel8.addEvent(eventNuevo);break;
			case 30:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel9.addEvent(eventNuevo);break;
			case 31:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModelA.addEvent(eventNuevo);break;
			case 32:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModelB.addEvent(eventNuevo);break;
			case 0:break;
			}
		}	
	}
	public void llenarMiercoles(Date fechaAux){
		int dia,mes,año;
		String Fecha,StringAux1,StringAux2;
		dia=fechaAux.getDate();
		mes=fechaAux.getMonth();
		mes++;
		año=fechaAux.getYear();
		año=año+1900;
		if(mes<=9){
			Fecha=""+dia+"-"+"0"+mes+"-"+año+"";
		}else{
			Fecha=""+dia+"-"+mes+"-"+año+"";
		}
		if(dia<=9){
			Fecha="0"+Fecha;
		}
		List<RegistroHorario> SLaux=listaMiercoles;
		Iterator<RegistroHorario> iterador=SLaux.iterator();
		while(iterador.hasNext()){
			RegistroHorario rh=(RegistroHorario)iterador.next();
			StringAux1=Fecha;
			StringAux2=Fecha;
			StringAux1=StringAux1+" "+rh.gethInicio().getHours()+":";
			if(rh.gethInicio().getMinutes()<=9){
				StringAux1=StringAux1+"0"+rh.gethInicio().getMinutes()+":"+"00";
			}else{
				StringAux1=StringAux1+rh.gethInicio().getMinutes()+":"+"00";
			}
			StringAux2=StringAux2+" "+rh.gethFin().getHours()+":";
			if(rh.gethFin().getMinutes()<=9){
				StringAux2=StringAux2+"0"+rh.gethFin().getMinutes()+":"+"00";
			}else{
				StringAux2=StringAux2+rh.gethFin().getMinutes()+":"+"00";
			}
			switch(rh.getIdAula()){
			case 22:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel1.addEvent(eventNuevo);break;
			case 23:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel2.addEvent(eventNuevo);break;
			case 24:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel3.addEvent(eventNuevo);break;
			case 25:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel4.addEvent(eventNuevo);break;
			case 26:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel5.addEvent(eventNuevo);break;
			case 27:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel6.addEvent(eventNuevo);break;
			case 28:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel7.addEvent(eventNuevo);break;
			case 29:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel8.addEvent(eventNuevo);break;
			case 30:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel9.addEvent(eventNuevo);break;
			case 31:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModelA.addEvent(eventNuevo);break;
			case 32:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModelB.addEvent(eventNuevo);break;
			case 0:break;
			}
		}
	}
	public void llenarJueves(Date fechaAux){
		int dia,mes,año;
		String Fecha,StringAux1,StringAux2;
		dia=fechaAux.getDate();
		mes=fechaAux.getMonth();
		mes++;
		año=fechaAux.getYear();
		año=año+1900;
		if(mes<=9){
			Fecha=""+dia+"-"+"0"+mes+"-"+año+"";
		}else{
			Fecha=""+dia+"-"+mes+"-"+año+"";
		}
		if(dia<=9){
			Fecha="0"+Fecha;
		}
		List<RegistroHorario> SLaux=listaJueves;
		Iterator<RegistroHorario> iterador=SLaux.iterator();
		while(iterador.hasNext()){
			RegistroHorario rh=(RegistroHorario)iterador.next();
			StringAux1=Fecha;
			StringAux2=Fecha;
			StringAux1=StringAux1+" "+rh.gethInicio().getHours()+":";
			if(rh.gethInicio().getMinutes()<=9){
				StringAux1=StringAux1+"0"+rh.gethInicio().getMinutes()+":"+"00";
			}else{
				StringAux1=StringAux1+rh.gethInicio().getMinutes()+":"+"00";
			}
			StringAux2=StringAux2+" "+rh.gethFin().getHours()+":";
			if(rh.gethFin().getMinutes()<=9){
				StringAux2=StringAux2+"0"+rh.gethFin().getMinutes()+":"+"00";
			}else{
				StringAux2=StringAux2+rh.gethFin().getMinutes()+":"+"00";
			}
			switch(rh.getIdAula()){
			case 22:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel1.addEvent(eventNuevo);break;
			case 23:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel2.addEvent(eventNuevo);break;
			case 24:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel3.addEvent(eventNuevo);break;
			case 25:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel4.addEvent(eventNuevo);break;
			case 26:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel5.addEvent(eventNuevo);break;
			case 27:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel6.addEvent(eventNuevo);break;
			case 28:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel7.addEvent(eventNuevo);break;
			case 29:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel8.addEvent(eventNuevo);break;
			case 30:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel9.addEvent(eventNuevo);break;
			case 31:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModelA.addEvent(eventNuevo);break;
			case 32:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModelB.addEvent(eventNuevo);break;
			case 0:break;
			}
		}
	}
	public void llenarViernes(Date fechaAux){
		int dia,mes,año;
		String Fecha,StringAux1,StringAux2;
		dia=fechaAux.getDate();
		mes=fechaAux.getMonth();
		mes++;
		año=fechaAux.getYear();
		año=año+1900;
		if(mes<=9){
			Fecha=""+dia+"-"+"0"+mes+"-"+año+"";
		}else{
			Fecha=""+dia+"-"+mes+"-"+año+"";
		}
		if(dia<=9){
			Fecha="0"+Fecha;
		}
		List<RegistroHorario> SLaux=listaViernes;
		Iterator<RegistroHorario> iterador=SLaux.iterator();
		while(iterador.hasNext()){
			RegistroHorario rh=(RegistroHorario)iterador.next();
			StringAux1=Fecha;
			StringAux2=Fecha;
			StringAux1=StringAux1+" "+rh.gethInicio().getHours()+":";
			if(rh.gethInicio().getMinutes()<=9){
				StringAux1=StringAux1+"0"+rh.gethInicio().getMinutes()+":"+"00";
			}else{
				StringAux1=StringAux1+rh.gethInicio().getMinutes()+":"+"00";
			}
			StringAux2=StringAux2+" "+rh.gethFin().getHours()+":";
			if(rh.gethFin().getMinutes()<=9){
				StringAux2=StringAux2+"0"+rh.gethFin().getMinutes()+":"+"00";
			}else{
				StringAux2=StringAux2+rh.gethFin().getMinutes()+":"+"00";
			}
			switch(rh.getIdAula()){
			case 22:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel1.addEvent(eventNuevo);break;
			case 23:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel2.addEvent(eventNuevo);break;
			case 24:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel3.addEvent(eventNuevo);break;
			case 25:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel4.addEvent(eventNuevo);break;
			case 26:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel5.addEvent(eventNuevo);break;
			case 27:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel6.addEvent(eventNuevo);break;
			case 28:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel7.addEvent(eventNuevo);break;
			case 29:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel8.addEvent(eventNuevo);break;
			case 30:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel9.addEvent(eventNuevo);break;
			case 31:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModelA.addEvent(eventNuevo);break;
			case 32:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModelB.addEvent(eventNuevo);break;
			case 0:break;
			}
		}
	}
	public void llenarSabado(Date fechaAux){
		int dia,mes,año;
		String Fecha,StringAux1,StringAux2;
		dia=fechaAux.getDate();
		mes=fechaAux.getMonth();
		mes++;
		año=fechaAux.getYear();
		año=año+1900;
		if(mes<=9){
			Fecha=""+dia+"-"+"0"+mes+"-"+año+"";
		}else{
			Fecha=""+dia+"-"+mes+"-"+año+"";
		}
		if(dia<=9){
			Fecha="0"+Fecha;
		}
		List<RegistroHorario> SLaux=listaSabado;
		Iterator<RegistroHorario> iterador=SLaux.iterator();
		while(iterador.hasNext()){
			RegistroHorario rh=(RegistroHorario)iterador.next();
			StringAux1=Fecha;
			StringAux2=Fecha;
			StringAux1=StringAux1+" "+rh.gethInicio().getHours()+":";
			if(rh.gethInicio().getMinutes()<=9){
				StringAux1=StringAux1+"0"+rh.gethInicio().getMinutes()+":"+"00";
			}else{
				StringAux1=StringAux1+rh.gethInicio().getMinutes()+":"+"00";
			}
			StringAux2=StringAux2+" "+rh.gethFin().getHours()+":";
			if(rh.gethFin().getMinutes()<=9){
				StringAux2=StringAux2+"0"+rh.gethFin().getMinutes()+":"+"00";
			}else{
				StringAux2=StringAux2+rh.gethFin().getMinutes()+":"+"00";
			}
			switch(rh.getIdAula()){
			case 22:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel1.addEvent(eventNuevo);break;
			case 23:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel2.addEvent(eventNuevo);break;
			case 24:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel3.addEvent(eventNuevo);break;
			case 25:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel4.addEvent(eventNuevo);break;
			case 26:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel5.addEvent(eventNuevo);break;
			case 27:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel6.addEvent(eventNuevo);break;
			case 28:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel7.addEvent(eventNuevo);break;
			case 29:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel8.addEvent(eventNuevo);break;
			case 30:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel9.addEvent(eventNuevo);break;
			case 31:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModelA.addEvent(eventNuevo);break;
			case 32:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModelB.addEvent(eventNuevo);break;
			case 0:break;
			}
		}
	}
	public void llenarDomingo(Date fechaAux){
		int dia,mes,año;
		String Fecha,StringAux1,StringAux2;
		dia=fechaAux.getDate();
		mes=fechaAux.getMonth();
		mes++;
		año=fechaAux.getYear();
		año=año+1900;
		if(mes<=9){
			Fecha=""+dia+"-"+"0"+mes+"-"+año+"";
		}else{
			Fecha=""+dia+"-"+mes+"-"+año+"";
		}
		if(dia<=9){
			Fecha="0"+Fecha;
		}
		List<RegistroHorario> SLaux=listaDomingo;
		Iterator<RegistroHorario> iterador=SLaux.iterator();
		while(iterador.hasNext()){
			RegistroHorario rh=(RegistroHorario)iterador.next();
			StringAux1=Fecha;
			StringAux2=Fecha;
			StringAux1=StringAux1+" "+rh.gethInicio().getHours()+":";
			if(rh.gethInicio().getMinutes()<=9){
				StringAux1=StringAux1+"0"+rh.gethInicio().getMinutes()+":"+"00";
			}else{
				StringAux1=StringAux1+rh.gethInicio().getMinutes()+":"+"00";
			}
			StringAux2=StringAux2+" "+rh.gethFin().getHours()+":";
			if(rh.gethFin().getMinutes()<=9){
				StringAux2=StringAux2+"0"+rh.gethFin().getMinutes()+":"+"00";
			}else{
				StringAux2=StringAux2+rh.gethFin().getMinutes()+":"+"00";
			}
			switch(rh.getIdAula()){
			case 22:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel1.addEvent(eventNuevo);break;
			case 23:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel2.addEvent(eventNuevo);break;
			case 24:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel3.addEvent(eventNuevo);break;
			case 25:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel4.addEvent(eventNuevo);break;
			case 26:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel5.addEvent(eventNuevo);break;
			case 27:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel6.addEvent(eventNuevo);break;
			case 28:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel7.addEvent(eventNuevo);break;
			case 29:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel8.addEvent(eventNuevo);break;
			case 30:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModel9.addEvent(eventNuevo);break;
			case 31:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModelA.addEvent(eventNuevo);break;
			case 32:
				eventNuevo=new DefaultScheduleEvent(rh.getCurso(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),rh);
				eventNuevo.setStyleClass("clase");
				eventModelB.addEvent(eventNuevo);break;
			case 0:break;
			}
		}
	}
	public void obtenerListaDeDias(){
		listaLunes=asignarAulas.obtenerLunes();
		listaMartes=asignarAulas.obtenerMartes();
		listaMiercoles=asignarAulas.obtenerMiercoles();
		listaJueves=asignarAulas.obtenerJueves();
		listaViernes=asignarAulas.obtenerViernes();
		listaSabado=asignarAulas.obtenerSabado();
		listaDomingo=asignarAulas.obtenerDomingo();
	}
	
	
	public void llenarScheduleLabos(){
		periodoActual=periodoRepository.obtenerUltimoPeriodo();
		Date today;
		inicioCalendar = java.sql.Date.valueOf(periodoActual.getFechaInicio());
		today = Fecha.today();
		if(today.before(inicioCalendar)){
			inicioCalendar = today;
		}
		fechaInicioP=stringAFecha(periodoActual.getFechaInicio());
		fechaFinP=stringAFecha(periodoActual.getFechaFin());
		int contador=0;
		GregorianCalendar gcal = new GregorianCalendar();
		gcal.setTime(fechaInicioP);
		obtenerListaDeDias();
		while (gcal.getTime().compareTo(fechaFinP)<=0) {
			fechaAux=gcal.getTime();
			switch(fechaAux.getDay()){
				case 1:llenarLunes(fechaAux);break;
				case 2:llenarMartes(fechaAux);break;
				case 3:llenarMiercoles(fechaAux);break;
				case 4:llenarJueves(fechaAux);break;
				case 5:llenarViernes(fechaAux);break;
				case 6:llenarSabado(fechaAux);break;
				case 0:llenarDomingo(fechaAux);break;
			}
			contador++;
		    gcal.add(Calendar.DAY_OF_YEAR, 1);
		}
		
	}
	public void llenarScheduleEventos(){
		Date d1,d2;
		int i;
		EventosAprobadosLabo=peticionService.obtenerLabosAprobados();
		int repitencias;
		Iterator<Peticion> iterador=EventosAprobadosLabo.iterator();
		GregorianCalendar gcal1 = new GregorianCalendar();
		GregorianCalendar gcal2 = new GregorianCalendar();
		while(iterador.hasNext()){
			Peticion paux=(Peticion)iterador.next();
			int dia,mes,año,horaI,minutoI,segundoI,horaF,segundoF,minutoF;
			String Fecha,StringAux1,StringAux2;
			dia=paux.getDia().getDate();
			//dia=fechaAux.getDate();
			mes=paux.getDia().getMonth();
			//mes=fechaAux.getMonth();
			mes++;
			año=paux.getDia().getYear();
			//año=fechaAux.getYear();
			año=año+1900;
			horaI=paux.gethInicio().getHours();
			minutoI=paux.gethInicio().getMinutes();
			segundoI=paux.gethInicio().getSeconds();
			horaF=paux.gethFin().getHours();
			minutoF=paux.gethFin().getMinutes();
			segundoF=paux.gethFin().getSeconds();
			if(mes<=9){
				Fecha=""+dia+"-"+"0"+mes+"-"+año+"";
			}else{
				Fecha=""+dia+"-"+mes+"-"+año+"";
			}
			if(dia<=9){
				Fecha="0"+Fecha;
			}
			repitencias=paux.getNumRep();
			StringAux1=Fecha;
			StringAux2=Fecha;
			if(horaI<=9){
				StringAux1=StringAux1+" 0"+horaI;
			}else{
				StringAux1=StringAux1+" "+horaI;
			}
			if(minutoI<=9){
				StringAux1=StringAux1+":0"+minutoI;
			}else{
				StringAux1=StringAux1+":"+minutoI;
			}
			if(segundoI<=9){
				StringAux1=StringAux1+":0"+segundoI;
			}else{
				StringAux1=StringAux1+":"+segundoI;
			}
			if(horaF<=9){
				StringAux2=StringAux2+" 0"+horaF;
			}else{
				StringAux2=StringAux2+" "+horaF;
			}
			if(minutoF<=9){
				StringAux2=StringAux2+":0"+minutoF;
			}else{
				StringAux2=StringAux2+":"+minutoF;
			}
			if(segundoF<=9){
				StringAux2=StringAux2+":0"+segundoF;
			}else{
				StringAux2=StringAux2+":"+segundoF;
			}
			gcal1.setTime(horarioAFecha(StringAux1));
			gcal2.setTime(horarioAFecha(StringAux2));
			for(i=repitencias;i>0;i--){
				Fecha="";
				switch(paux.getIdAulaPet()){
				case 22:
					eventNuevo=new DefaultScheduleEvent(paux.getNombreEvento(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),paux);
					eventNuevo.setStyleClass("evento");
					eventModel1.addEvent(eventNuevo);break;
				case 23:
					eventNuevo=new DefaultScheduleEvent(paux.getNombreEvento(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),paux);
					eventNuevo.setStyleClass("evento");
					eventModel2.addEvent(eventNuevo);break;
				case 24:
					eventNuevo=new DefaultScheduleEvent(paux.getNombreEvento(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),paux);
					eventNuevo.setStyleClass("evento");
					eventModel3.addEvent(eventNuevo);break;
				case 25:
					eventNuevo=new DefaultScheduleEvent(paux.getNombreEvento(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),paux);
					eventNuevo.setStyleClass("evento");
					eventModel4.addEvent(eventNuevo);break;
				case 26:
					eventNuevo=new DefaultScheduleEvent(paux.getNombreEvento(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),paux);
					eventNuevo.setStyleClass("evento");
					eventModel5.addEvent(eventNuevo);break;
				case 27:
					eventNuevo=new DefaultScheduleEvent(paux.getNombreEvento(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),paux);
					eventNuevo.setStyleClass("evento");
					eventModel6.addEvent(eventNuevo);break;
				case 28:
					eventNuevo=new DefaultScheduleEvent(paux.getNombreEvento(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),paux);
					eventNuevo.setStyleClass("evento");
					eventModel7.addEvent(eventNuevo);break;
				case 29:
					eventNuevo=new DefaultScheduleEvent(paux.getNombreEvento(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),paux);
					eventNuevo.setStyleClass("evento");
					eventModel8.addEvent(eventNuevo);break;
				case 30:
					eventNuevo=new DefaultScheduleEvent(paux.getNombreEvento(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),paux);
					eventNuevo.setStyleClass("evento");
					eventModel9.addEvent(eventNuevo);break;
				case 31:
					eventNuevo=new DefaultScheduleEvent(paux.getNombreEvento(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),paux);
					eventNuevo.setStyleClass("evento");
					eventModelA.addEvent(eventNuevo);break;
				case 32:
					eventNuevo=new DefaultScheduleEvent(paux.getNombreEvento(),horarioAFecha(StringAux1),horarioAFecha(StringAux2),paux);
					eventNuevo.setStyleClass("evento");
					eventModelB.addEvent(eventNuevo);break;
				case 0:break;
				}
				gcal1.add(Calendar.DAY_OF_YEAR, 7);
				gcal2.add(Calendar.DAY_OF_MONTH, 7);
				d1=gcal1.getTime();
				d2=gcal2.getTime();
				dia=d1.getDate();
				//dia=fechaAux.getDate();
				mes=d1.getMonth();
				//mes=fechaAux.getMonth();
				mes++;
				año=d1.getYear();
				//año=fechaAux.getYear();
				año=año+1900;
				horaI=d1.getHours();
				minutoI=d1.getMinutes();
				segundoI=d1.getSeconds();
				horaF=d2.getHours();
				minutoF=d2.getMinutes();
				segundoF=d2.getSeconds();
				if(mes<=9){
					Fecha=""+dia+"-"+"0"+mes+"-"+año+"";
				}else{
					Fecha=""+dia+"-"+mes+"-"+año+"";
				}
				if(dia<=9){
					Fecha="0"+Fecha;
				}
				StringAux1=Fecha;
				StringAux2=Fecha;
				if(horaI<=9){
					StringAux1=StringAux1+" 0"+horaI;
				}else{
					StringAux1=StringAux1+" "+horaI;
				}
				if(minutoI<=9){
					StringAux1=StringAux1+":0"+minutoI;
				}else{
					StringAux1=StringAux1+":"+minutoI;
				}
				if(segundoI<=9){
					StringAux1=StringAux1+":0"+segundoI;
				}else{
					StringAux1=StringAux1+":"+segundoI;
				}
				if(horaF<=9){
					StringAux2=StringAux2+" 0"+horaF;
				}else{
					StringAux2=StringAux2+" "+horaF;
				}
				if(minutoF<=9){
					StringAux2=StringAux2+":0"+minutoF;
				}else{
					StringAux2=StringAux2+":"+minutoF;
				}
				if(segundoF<=9){
					StringAux2=StringAux2+":0"+segundoF;
				}else{
					StringAux2=StringAux2+":"+segundoF;
				}
			}
		}
		
	}

	public void llenarLaboratorios()
	{
		this.listaLaboratorios = asignarListaLaboratorios.obtenerListaLaboratorios();
	}

	public void irlogin(){
		System.out.println("REDIRECCIONANDO.....");
		try {
			FacesContext
					.getCurrentInstance()
					.getExternalContext()
					.redirect(					
							"/sisdiho/common/loginSchedule.jsf");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
